package com.heima.三种注入方式;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author 陈辉
 * @data 2023 11:22
 */
@RestController
public class StockController1 {

    /*
        关于Spring的三种注入方式：
            1. @AllArgsConstructor: 基于带参构造给成员变量赋值
            2. @Resource：基于暴力反射给成员变量赋值
                    a.先按名称查找，找不到，再按类型查找!
                    b.如果按类型找到的有多个，需要进一步通过@Qualifier("stringRedisTemplate02")来指定具体的某一个
                    c.jdk提供的

            3. @Autowired：基于暴力反射给成员变量赋值
                    a. 先按类型查找，找到多个，再按名称@Qualifier进一步确认!
                    b. 由Spring提供的
     */
    @Autowired
    @Qualifier("stringRedisTemplate02")
    private StringRedisTemplate template;

    @GetMapping("/stock1111")
    public String stock01(){
        //模拟：下单扣库存操作
        System.out.println("template = " + template);
        return "ok";
    }
}
